//
// Created by Eugeny Grishul
//
// See license at http://bamelg.com/license.txt
//
using System;
using System.Runtime.InteropServices;
using Platform.X;
namespace Platform.Cairo {
[ExternLibrary( Image = "/usr/lib64/libcairo.so.2" )]
public static partial struct CairoApi {
public extern static void cairo_append_path( cairo_t* cr, cairo_path* path );
public extern static void cairo_arc( cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2 );
public extern static void cairo_arc_negative( cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2 );
public extern static void cairo_clip( cairo_t* cr );
public extern static void cairo_clip_extents( cairo_t* cr, double& x1, double& y1, double& x2, double& y2 );
public extern static void cairo_clip_preserve( cairo_t* cr );
public extern static void cairo_close_path( cairo_t* cr );
public extern static cairo_rectangle_list_t* cairo_copy_clip_rectangle_list( cairo_t* cr );
public extern static void cairo_copy_page( cairo_t* cr );
public extern static cairo_path* cairo_copy_path( cairo_t* cr );
public extern static cairo_path* cairo_copy_path_flat( cairo_t* cr );
public extern static cairo_t* cairo_create( cairo_surface_t* target );
public extern static void cairo_curve_to( cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3 );
public extern static void cairo_debug_reset_static_data();
public extern static void cairo_destroy( cairo_t* cr );
public extern static cairo_status_t cairo_device_acquire( cairo_device_t* device );
public extern static void cairo_device_destroy( cairo_device_t* device );
public extern static void cairo_device_finish( cairo_device_t* device );
public extern static void cairo_device_flush( cairo_device_t* device );
public extern static uint cairo_device_get_reference_count( cairo_device_t* device );
public extern static cairo_device_type_t cairo_device_get_type( cairo_device_t* device );
public extern static void* cairo_device_get_user_data( cairo_device_t* device, cairo_user_data_key_t* key );
public extern static double cairo_device_observer_elapsed( cairo_device_t* device );
public extern static double cairo_device_observer_fill_elapsed( cairo_device_t* device );
public extern static double cairo_device_observer_glyphs_elapsed( cairo_device_t* device );
public extern static double cairo_device_observer_mask_elapsed( cairo_device_t* device );
public extern static double cairo_device_observer_paint_elapsed( cairo_device_t* device );
public extern static cairo_status_t cairo_device_observer_print( cairo_device_t* device, Functors.Func<void*, byte*, uint, cairo_status_t> writeFunc, void* closure );
public extern static double cairo_device_observer_stroke_elapsed( cairo_device_t* device );
public extern static cairo_device_t* cairo_device_reference( cairo_device_t* device );
public extern static void cairo_device_release( cairo_device_t* device );
public extern static cairo_status_t cairo_device_set_user_data( cairo_device_t* device, cairo_user_data_key_t* key, void* userData, Functors.Action<void*> destroy );
public extern static cairo_status_t cairo_device_status( cairo_device_t* device );
public extern static void cairo_device_to_user( cairo_t* cr, double* x, double* y );
public extern static void cairo_device_to_user_distance( cairo_t* cr, double* dx, double* dy );
public extern static void cairo_fill( cairo_t* cr );
public extern static void cairo_fill_extents( cairo_t* cr, double& x1, double& y1, double& x2, double& y2 );
public extern static void cairo_fill_preserve( cairo_t* cr );
public extern static void cairo_font_extents( cairo_t* cr, cairo_font_extents_t* extents );
public extern static void cairo_font_face_destroy( cairo_font_face_t* fontFace );
public extern static uint cairo_font_face_get_reference_count( cairo_font_face_t* fontFace );
public extern static cairo_font_type_t cairo_font_face_get_type( cairo_font_face_t* fontFace );
public extern static void* cairo_font_face_get_user_data( cairo_font_face_t* fontFace, cairo_user_data_key_t& key );
public extern static cairo_font_face_t* cairo_font_face_reference( cairo_font_face_t* fontFace );
public extern static cairo_status_t cairo_font_face_set_user_data( cairo_font_face_t* fontFace, cairo_user_data_key_t& key, void* userData, Functors.Action<void*> destroy );
public extern static cairo_status_t cairo_font_face_status( cairo_font_face_t* fontFace );
public extern static cairo_font_options_t* cairo_font_options_copy( cairo_font_options_t* original );
public extern static cairo_font_options_t* cairo_font_options_create();
public extern static void cairo_font_options_destroy( cairo_font_options_t* options );
public extern static Boolean32 cairo_font_options_equal( cairo_font_options_t* options, cairo_font_options_t* other );
public extern static cairo_antialias_t cairo_font_options_get_antialias( cairo_font_options_t* options );
public extern static cairo_hint_metrics_t cairo_font_options_get_hint_metrics( cairo_font_options_t* options );
public extern static cairo_hint_style_t cairo_font_options_get_hint_style( cairo_font_options_t* options );
public extern static cairo_subpixel_order_t cairo_font_options_get_subpixel_order( cairo_font_options_t* options );
public extern static sbyte* cairo_font_options_get_variations( cairo_font_options_t* options );
public extern static uintptr cairo_font_options_hash( cairo_font_options_t* options );
public extern static void cairo_font_options_merge( cairo_font_options_t* options, cairo_font_options_t* other );
public extern static void cairo_font_options_set_antialias( cairo_font_options_t* options, cairo_antialias_t antialias );
public extern static void cairo_font_options_set_hint_metrics( cairo_font_options_t* options, cairo_hint_metrics_t hintMetrics );
public extern static void cairo_font_options_set_hint_style( cairo_font_options_t* options, cairo_hint_style_t hintStyle );
public extern static void cairo_font_options_set_subpixel_order( cairo_font_options_t* options, cairo_subpixel_order_t subpixelOrder );
public extern static void cairo_font_options_set_variations( cairo_font_options_t* options, sbyte* variations );
public extern static cairo_status_t cairo_font_options_status( cairo_font_options_t* options );
public extern static int cairo_format_stride_for_width( cairo_format_t format, int width );
public extern static cairo_antialias_t cairo_get_antialias( cairo_t* cr );
public extern static void cairo_get_current_point( cairo_t* cr, double& x, double& y );
public extern static void cairo_get_dash( cairo_t* cr, double* dashes, double& offset );
public extern static int cairo_get_dash_count( cairo_t* cr );
public extern static cairo_fill_rule_t cairo_get_fill_rule( cairo_t* cr );
public extern static cairo_font_face_t* cairo_get_font_face( cairo_t* cr );
public extern static void cairo_get_font_matrix( cairo_t* cr, cairo_matrix_t& matrix );
public extern static void cairo_get_font_options( cairo_t* cr, cairo_font_options_t* options );
public extern static cairo_surface_t* cairo_get_group_target( cairo_t* cr );
public extern static cairo_line_cap_t cairo_get_line_cap( cairo_t* cr );
public extern static cairo_line_join_t cairo_get_line_join( cairo_t* cr );
public extern static double cairo_get_line_width( cairo_t* cr );
public extern static void cairo_get_matrix( cairo_t* cr, cairo_matrix_t& matrix );
public extern static double cairo_get_miter_limit( cairo_t* cr );
public extern static cairo_operator_t cairo_get_operator( cairo_t* cr );
public extern static uint cairo_get_reference_count( cairo_t* cr );
public extern static cairo_scaled_font_t* cairo_get_scaled_font( cairo_t* cr );
public extern static cairo_pattern_t* cairo_get_source( cairo_t* cr );
public extern static cairo_surface_t* cairo_get_target( cairo_t* cr );
public extern static double cairo_get_tolerance( cairo_t* cr );
public extern static void* cairo_get_user_data( cairo_t* cr, cairo_user_data_key_t& key );
public extern static cairo_glyph_t* cairo_glyph_allocate( int numGlyphs );
public extern static void cairo_glyph_extents( cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t& extents );
public extern static void cairo_glyph_free( cairo_glyph_t* glyphs );
public extern static void cairo_glyph_path( cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs );
public extern static Boolean32 cairo_has_current_point( cairo_t* cr );
public extern static void cairo_identity_matrix( cairo_t* cr );
public extern static cairo_surface_t* cairo_image_surface_create( cairo_format_t format, int width, int height );
public extern static cairo_surface_t* cairo_image_surface_create_for_data( byte* data, cairo_format_t format, int width, int height, int stride );
public extern static cairo_surface_t* cairo_image_surface_create_from_png( CUtf8String filename );
public extern static cairo_surface_t* cairo_image_surface_create_from_png_stream( Functors.Func<void*, byte*, uint, cairo_status_t> readFunc, void* closure );
public extern static byte* cairo_image_surface_get_data( cairo_surface_t* surface );
public extern static cairo_format_t cairo_image_surface_get_format( cairo_surface_t* surface );
public extern static int cairo_image_surface_get_height( cairo_surface_t* surface );
public extern static int cairo_image_surface_get_stride( cairo_surface_t* surface );
public extern static int cairo_image_surface_get_width( cairo_surface_t* surface );
public extern static Boolean32 cairo_in_clip( cairo_t* cr, double x, double y );
public extern static Boolean32 cairo_in_fill( cairo_t* cr, double x, double y );
public extern static Boolean32 cairo_in_stroke( cairo_t* cr, double x, double y );
public extern static void cairo_line_to( cairo_t* cr, double x, double y );
public extern static void cairo_mask( cairo_t* cr, cairo_pattern_t* pattern );
public extern static void cairo_mask_surface( cairo_t* cr, cairo_surface_t* surface, double surfaceX, double surfaceY );
public extern static void cairo_matrix_init( cairo_matrix_t* matrix, double xx, double yx, double xy, double yy, double x0, double y0 );
public extern static void cairo_matrix_init_identity( cairo_matrix_t* matrix );
public extern static void cairo_matrix_init_rotate( cairo_matrix_t* matrix, double radians );
public extern static void cairo_matrix_init_scale( cairo_matrix_t* matrix, double sx, double sy );
public extern static void cairo_matrix_init_translate( cairo_matrix_t* matrix, double tx, double ty );
public extern static cairo_status_t cairo_matrix_invert( cairo_matrix_t* matrix );
public extern static void cairo_matrix_multiply( cairo_matrix_t* result, cairo_matrix_t& a, cairo_matrix_t& b );
public extern static void cairo_matrix_rotate( cairo_matrix_t* matrix, double radians );
public extern static void cairo_matrix_scale( cairo_matrix_t* matrix, double sx, double sy );
public extern static void cairo_matrix_transform_distance( cairo_matrix_t* matrix, double& dx, double& dy );
public extern static void cairo_matrix_transform_point( cairo_matrix_t* matrix, double& x, double& y );
public extern static void cairo_matrix_translate( cairo_matrix_t* matrix, double tx, double ty );
public extern static void cairo_mesh_pattern_begin_patch( cairo_pattern_t* pattern );
public extern static void cairo_mesh_pattern_curve_to( cairo_pattern_t* pattern, double x1, double y1, double x2, double y2, double x3, double y3 );
public extern static void cairo_mesh_pattern_end_patch( cairo_pattern_t* pattern );
public extern static cairo_status_t cairo_mesh_pattern_get_control_point( cairo_pattern_t* pattern, uint patchNum, uint pointNum, double* x, double* y );
public extern static cairo_status_t cairo_mesh_pattern_get_corner_color_rgba( cairo_pattern_t* pattern, uint patchNum, uint cornerNum, double* red, double* green, double* blue, double* alpha );
public extern static cairo_status_t cairo_mesh_pattern_get_patch_count( cairo_pattern_t* pattern, uint* count );
public extern static cairo_path* cairo_mesh_pattern_get_path( cairo_pattern_t* pattern, uint patchNum );
public extern static void cairo_mesh_pattern_line_to( cairo_pattern_t* pattern, double x, double y );
public extern static void cairo_mesh_pattern_move_to( cairo_pattern_t* pattern, double x, double y );
public extern static void cairo_mesh_pattern_set_control_point( cairo_pattern_t* pattern, uint pointNum, double x, double y );
public extern static void cairo_mesh_pattern_set_corner_color_rgb( cairo_pattern_t* pattern, uint cornerNum, double red, double green, double blue );
public extern static void cairo_mesh_pattern_set_corner_color_rgba( cairo_pattern_t* pattern, uint cornerNum, double red, double green, double blue, double alpha );
public extern static void cairo_move_to( cairo_t* cr, double x, double y );
public extern static void cairo_new_path( cairo_t* cr );
public extern static void cairo_new_sub_path( cairo_t* cr );
public extern static void cairo_paint( cairo_t* cr );
public extern static void cairo_paint_with_alpha( cairo_t* cr, double alpha );
public extern static void cairo_path_destroy( cairo_path* path );
public extern static void cairo_path_extents( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 );
public extern static void cairo_pattern_add_color_stop_rgb( cairo_pattern_t* pattern, double offset, double red, double green, double blue );
public extern static void cairo_pattern_add_color_stop_rgba( cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha );
public extern static cairo_pattern_t* cairo_pattern_create_for_surface( cairo_surface_t* surface );
public extern static cairo_pattern_t* cairo_pattern_create_linear( double x0, double y0, double x1, double y1 );
public extern static cairo_pattern_t* cairo_pattern_create_mesh();
public extern static cairo_pattern_t* cairo_pattern_create_radial( double cx0, double cy0, double radius0, double cx1, double cy1, double radius1 );
public extern static cairo_pattern_t* cairo_pattern_create_raster_source( void* userData, cairo_content_t content, int width, int height );
public extern static cairo_pattern_t* cairo_pattern_create_rgb( double red, double green, double blue );
public extern static cairo_pattern_t* cairo_pattern_create_rgba( double red, double green, double blue, double alpha );
public extern static void cairo_pattern_destroy( cairo_pattern_t* pattern );
public extern static cairo_status_t cairo_pattern_get_color_stop_count( cairo_pattern_t* pattern, int* count );
public extern static cairo_status_t cairo_pattern_get_color_stop_rgba( cairo_pattern_t* pattern, int index, double& offset, double& red, double& green, double& blue, double& alpha );
public extern static cairo_extend_t cairo_pattern_get_extend( cairo_pattern_t* pattern );
public extern static cairo_filter_t cairo_pattern_get_filter( cairo_pattern_t* pattern );
public extern static cairo_status_t cairo_pattern_get_linear_points( cairo_pattern_t* pattern, double& x0, double& y0, double& x1, double& y1 );
public extern static void cairo_pattern_get_matrix( cairo_pattern_t* pattern, cairo_matrix_t& matrix );
public extern static cairo_status_t cairo_pattern_get_radial_circles( cairo_pattern_t* pattern, double& x0, double& y0, double& r0, double& x1, double& y1, double& r1 );
public extern static uint cairo_pattern_get_reference_count( cairo_pattern_t* pattern );
public extern static cairo_status_t cairo_pattern_get_rgba( cairo_pattern_t* pattern, double& red, double& green, double& blue, double& alpha );
public extern static cairo_status_t cairo_pattern_get_surface( cairo_pattern_t* pattern, cairo_surface_t*& surface );
public extern static cairo_pattern_type_t cairo_pattern_get_type( cairo_pattern_t* pattern );
public extern static void* cairo_pattern_get_user_data( cairo_pattern_t* pattern, cairo_user_data_key_t& key );
public extern static cairo_pattern_t* cairo_pattern_reference( cairo_pattern_t* pattern );
public extern static void cairo_pattern_set_extend( cairo_pattern_t* pattern, cairo_extend_t extend );
public extern static void cairo_pattern_set_filter( cairo_pattern_t* pattern, cairo_filter_t filter );
public extern static void cairo_pattern_set_matrix( cairo_pattern_t* pattern, cairo_matrix_t& matrix );
public extern static cairo_status_t cairo_pattern_set_user_data( cairo_pattern_t* pattern, cairo_user_data_key_t& key, void* userData, Functors.Action<void*> destroy );
public extern static cairo_status_t cairo_pattern_status( cairo_pattern_t* pattern );
public extern static cairo_pattern_t* cairo_pop_group( cairo_t* cr );
public extern static void cairo_pop_group_to_source( cairo_t* cr );
public extern static void cairo_push_group( cairo_t* cr );
public extern static void cairo_push_group_with_content( cairo_t* cr, cairo_content_t content );
public extern static void cairo_raster_source_pattern_get_acquire( cairo_pattern_t* pattern, Functors.Func<cairo_pattern_t*, void*, cairo_surface_t*, cairo_rectangle_int_t*, cairo_surface_t*>* acquire, Functors.Action<cairo_pattern_t*, void*, cairo_surface_t*>* release );
public extern static void* cairo_raster_source_pattern_get_callback_data( cairo_pattern_t* pattern );
public extern static Functors.Func<cairo_pattern_t*, void*, cairo_pattern_t*, cairo_status_t> cairo_raster_source_pattern_get_copy( cairo_pattern_t* pattern );
public extern static Functors.Action<cairo_pattern_t*, void*> cairo_raster_source_pattern_get_finish( cairo_pattern_t* pattern );
public extern static Functors.Func<cairo_pattern_t*, void*, cairo_status_t> cairo_raster_source_pattern_get_snapshot( cairo_pattern_t* pattern );
public extern static void cairo_raster_source_pattern_set_acquire( cairo_pattern_t* pattern, Functors.Func<cairo_pattern_t*, void*, cairo_surface_t*, cairo_rectangle_int_t*, cairo_surface_t*> acquire, Functors.Action<cairo_pattern_t*, void*, cairo_surface_t*> release );
public extern static void cairo_raster_source_pattern_set_callback_data( cairo_pattern_t* pattern, void* data );
public extern static void cairo_raster_source_pattern_set_copy( cairo_pattern_t* pattern, Functors.Func<cairo_pattern_t*, void*, cairo_pattern_t*, cairo_status_t> copy );
public extern static void cairo_raster_source_pattern_set_finish( cairo_pattern_t* pattern, Functors.Action<cairo_pattern_t*, void*> finish );
public extern static void cairo_raster_source_pattern_set_snapshot( cairo_pattern_t* pattern, Functors.Func<cairo_pattern_t*, void*, cairo_status_t> snapshot );
public extern static cairo_surface_t* cairo_recording_surface_create( cairo_content_t content, cairo_rectangle_t* extents );
public extern static Boolean32 cairo_recording_surface_get_extents( cairo_surface_t* surface, cairo_rectangle_t* extents );
public extern static void cairo_recording_surface_ink_extents( cairo_surface_t* surface, double* x0, double* y0, double* width, double* height );
public extern static void cairo_rectangle( cairo_t* cr, double x, double y, double width, double height );
public extern static void cairo_rectangle_list_destroy( cairo_rectangle_list_t* rectangleList );
public extern static cairo_t* cairo_reference( cairo_t* cr );
public extern static Boolean32 cairo_region_contains_point( cairo_region_t* region, int x, int y );
public extern static cairo_region_overlap_t cairo_region_contains_rectangle( cairo_region_t* region, cairo_rectangle_int_t* rectangle );
public extern static cairo_region_t* cairo_region_copy( cairo_region_t* original );
public extern static cairo_region_t* cairo_region_create();
public extern static cairo_region_t* cairo_region_create_rectangle( cairo_rectangle_int_t* rectangle );
public extern static cairo_region_t* cairo_region_create_rectangles( cairo_rectangle_int_t* rects, int count );
public extern static void cairo_region_destroy( cairo_region_t* region );
public extern static Boolean32 cairo_region_equal( cairo_region_t* a, cairo_region_t* b );
public extern static void cairo_region_get_extents( cairo_region_t* region, cairo_rectangle_int_t* extents );
public extern static void cairo_region_get_rectangle( cairo_region_t* region, int nth, cairo_rectangle_int_t* rectangle );
public extern static cairo_status_t cairo_region_intersect( cairo_region_t* dst, cairo_region_t* other );
public extern static cairo_status_t cairo_region_intersect_rectangle( cairo_region_t* dst, cairo_rectangle_int_t* rectangle );
public extern static Boolean32 cairo_region_is_empty( cairo_region_t* region );
public extern static int cairo_region_num_rectangles( cairo_region_t* region );
public extern static cairo_region_t* cairo_region_reference( cairo_region_t* region );
public extern static cairo_status_t cairo_region_status( cairo_region_t* region );
public extern static cairo_status_t cairo_region_subtract( cairo_region_t* dst, cairo_region_t* other );
public extern static cairo_status_t cairo_region_subtract_rectangle( cairo_region_t* dst, cairo_rectangle_int_t* rectangle );
public extern static void cairo_region_translate( cairo_region_t* region, int dx, int dy );
public extern static cairo_status_t cairo_region_union( cairo_region_t* dst, cairo_region_t* other );
public extern static cairo_status_t cairo_region_union_rectangle( cairo_region_t* dst, cairo_rectangle_int_t* rectangle );
public extern static cairo_status_t cairo_region_xor( cairo_region_t* dst, cairo_region_t* other );
public extern static cairo_status_t cairo_region_xor_rectangle( cairo_region_t* dst, cairo_rectangle_int_t* rectangle );
public extern static void cairo_rel_curve_to( cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3 );
public extern static void cairo_rel_line_to( cairo_t* cr, double dx, double dy );
public extern static void cairo_rel_move_to( cairo_t* cr, double dx, double dy );
public extern static void cairo_reset_clip( cairo_t* cr );
public extern static void cairo_restore( cairo_t* cr );
public extern static void cairo_rotate( cairo_t* cr, double angle );
public extern static void cairo_save( cairo_t* cr );
public extern static void cairo_scale( cairo_t* cr, double sx, double sy );
public extern static cairo_scaled_font_t* cairo_scaled_font_create( cairo_font_face_t* fontFace, cairo_matrix_t* fontMatrix, cairo_matrix_t* ctm, cairo_font_options_t* options );
public extern static void cairo_scaled_font_destroy( cairo_scaled_font_t* scaledFont );
public extern static void cairo_scaled_font_extents( cairo_scaled_font_t* scaledFont, cairo_font_extents_t* extents );
public extern static void cairo_scaled_font_get_ctm( cairo_scaled_font_t* scaledFont, cairo_matrix_t& ctm );
public extern static cairo_font_face_t* cairo_scaled_font_get_font_face( cairo_scaled_font_t* scaledFont );
public extern static void cairo_scaled_font_get_font_matrix( cairo_scaled_font_t* scaledFont, cairo_matrix_t& fontMatrix );
public extern static void cairo_scaled_font_get_font_options( cairo_scaled_font_t* scaledFont, cairo_font_options_t* options );
public extern static uint cairo_scaled_font_get_reference_count( cairo_scaled_font_t* scaledFont );
public extern static void cairo_scaled_font_get_scale_matrix( cairo_scaled_font_t* scaledFont, cairo_matrix_t* scaleMatrix );
public extern static cairo_font_type_t cairo_scaled_font_get_type( cairo_scaled_font_t* scaledFont );
public extern static void* cairo_scaled_font_get_user_data( cairo_scaled_font_t* scaledFont, cairo_user_data_key_t& key );
public extern static void cairo_scaled_font_glyph_extents( cairo_scaled_font_t* scaledFont, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t& extents );
public extern static cairo_scaled_font_t* cairo_scaled_font_reference( cairo_scaled_font_t* scaledFont );
public extern static cairo_status_t cairo_scaled_font_set_user_data( cairo_scaled_font_t* scaledFont, cairo_user_data_key_t& key, void* userData, Functors.Action<void*> destroy );
public extern static cairo_status_t cairo_scaled_font_status( cairo_scaled_font_t* scaledFont );
public extern static void cairo_scaled_font_text_extents( cairo_scaled_font_t* scaledFont, CUtf8String utf8, cairo_text_extents_t& extents );
public extern static cairo_status_t cairo_scaled_font_text_to_glyphs( cairo_scaled_font_t* scaledFont, double x, double y, sbyte* utf8, int utf8Len, cairo_glyph_t** glyphs, int* numGlyphs, cairo_text_cluster_t** clusters, int* numClusters, cairo_text_cluster_flags_t* clusterFlags );
public extern static void cairo_select_font_face( cairo_t* cr, CUtf8String family, cairo_font_slant_t slant, cairo_font_weight_t weight );
public extern static void cairo_set_antialias( cairo_t* cr, cairo_antialias_t antialias );
public extern static void cairo_set_dash( cairo_t* cr, double* dashes, uint numDashes, double offset );
public extern static void cairo_set_fill_rule( cairo_t* cr, cairo_fill_rule_t fillRule );
public extern static void cairo_set_font_face( cairo_t* cr, cairo_font_face_t* fontFace );
public extern static void cairo_set_font_matrix( cairo_t* cr, cairo_matrix_t& matrix );
public extern static void cairo_set_font_options( cairo_t* cr, cairo_font_options_t* options );
public extern static void cairo_set_font_size( cairo_t* cr, double size );
public extern static void cairo_set_line_cap( cairo_t* cr, cairo_line_cap_t lineCap );
public extern static void cairo_set_line_join( cairo_t* cr, cairo_line_join_t lineJoin );
public extern static void cairo_set_line_width( cairo_t* cr, double width );
public extern static void cairo_set_matrix( cairo_t* cr, cairo_matrix_t& matrix );
public extern static void cairo_set_miter_limit( cairo_t* cr, double limit );
public extern static void cairo_set_operator( cairo_t* cr, cairo_operator_t op );
public extern static void cairo_set_scaled_font( cairo_t* cr, cairo_scaled_font_t* scaledFont );
public extern static void cairo_set_source( cairo_t* cr, cairo_pattern_t* source );
public extern static void cairo_set_source_rgb( cairo_t* cr, double red, double green, double blue );
public extern static void cairo_set_source_rgba( cairo_t* cr, double red, double green, double blue, double alpha );
public extern static void cairo_set_source_surface( cairo_t* cr, cairo_surface_t* surface, double x, double y );
public extern static void cairo_set_tolerance( cairo_t* cr, double tolerance );
public extern static cairo_status_t cairo_set_user_data( cairo_t* cr, cairo_user_data_key_t& key, void* userData, Functors.Action<void*> destroy );
public extern static void cairo_show_glyphs( cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs );
public extern static void cairo_show_page( cairo_t* cr );
public extern static void cairo_show_text( cairo_t* cr, CUtf8String utf8 );
public extern static void cairo_show_text_glyphs( cairo_t* cr, CUtf8String utf8, int utf8Len, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_cluster_t* clusters, int numClusters, cairo_text_cluster_flags_t clusterFlags );
public extern static cairo_status_t cairo_status( cairo_t* cr );
public extern static CUtf8String cairo_status_to_string( cairo_status_t status );
public extern static void cairo_stroke( cairo_t* cr );
public extern static void cairo_stroke_extents( cairo_t* cr, double& x1, double& y1, double& x2, double& y2 );
public extern static void cairo_stroke_preserve( cairo_t* cr );
public extern static void cairo_surface_copy_page( cairo_surface_t* surface );
public extern static cairo_surface_t* cairo_surface_create_for_rectangle( cairo_surface_t* target, double x, double y, double width, double height );
public extern static cairo_surface_t* cairo_surface_create_observer( cairo_surface_t* target, cairo_surface_observer_mode_t mode );
public extern static cairo_surface_t* cairo_surface_create_similar( cairo_surface_t* other, cairo_content_t content, int width, int height );
public extern static cairo_surface_t* cairo_surface_create_similar_image( cairo_surface_t* other, cairo_format_t format, int width, int height );
public extern static void cairo_surface_destroy( cairo_surface_t* surface );
public extern static void cairo_surface_finish( cairo_surface_t* surface );
public extern static void cairo_surface_flush( cairo_surface_t* surface );
public extern static cairo_content_t cairo_surface_get_content( cairo_surface_t* surface );
public extern static cairo_device_t* cairo_surface_get_device( cairo_surface_t* surface );
public extern static void cairo_surface_get_device_offset( cairo_surface_t* surface, double& xOffset, double& yOffset );
public extern static void cairo_surface_get_device_scale( cairo_surface_t* surface, double* xScale, double* yScale );
public extern static void cairo_surface_get_fallback_resolution( cairo_surface_t* surface, double* xPixelsPerInch, double* yPixelsPerInch );
public extern static void cairo_surface_get_font_options( cairo_surface_t* surface, cairo_font_options_t* options );
public extern static void cairo_surface_get_mime_data( cairo_surface_t* surface, sbyte* mimeType, byte** data, uintptr* length );
public extern static uint cairo_surface_get_reference_count( cairo_surface_t* surface );
public extern static cairo_surface_type_t cairo_surface_get_type( cairo_surface_t* surface );
public extern static void* cairo_surface_get_user_data( cairo_surface_t* surface, cairo_user_data_key_t& key );
public extern static Boolean32 cairo_surface_has_show_text_glyphs( cairo_surface_t* surface );
public extern static cairo_surface_t* cairo_surface_map_to_image( cairo_surface_t* surface, cairo_rectangle_int_t* extents );
public extern static void cairo_surface_mark_dirty( cairo_surface_t* surface );
public extern static void cairo_surface_mark_dirty_rectangle( cairo_surface_t* surface, int x, int y, int width, int height );
public extern static cairo_status_t cairo_surface_observer_add_fill_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static cairo_status_t cairo_surface_observer_add_finish_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static cairo_status_t cairo_surface_observer_add_flush_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static cairo_status_t cairo_surface_observer_add_glyphs_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static cairo_status_t cairo_surface_observer_add_mask_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static cairo_status_t cairo_surface_observer_add_paint_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static cairo_status_t cairo_surface_observer_add_stroke_callback( cairo_surface_t* abstractSurface, Functors.Action<cairo_surface_t*, cairo_surface_t*, void*> func, void* data );
public extern static double cairo_surface_observer_elapsed( cairo_surface_t* surface );
public extern static cairo_status_t cairo_surface_observer_print( cairo_surface_t* surface, Functors.Func<void*, byte*, uint, cairo_status_t> writeFunc, void* closure );
public extern static cairo_surface_t* cairo_surface_reference( cairo_surface_t* surface );
public extern static void cairo_surface_set_device_offset( cairo_surface_t* surface, double xOffset, double yOffset );
public extern static void cairo_surface_set_device_scale( cairo_surface_t* surface, double xScale, double yScale );
public extern static void cairo_surface_set_fallback_resolution( cairo_surface_t* surface, double xPixelsPerInch, double yPixelsPerInch );
public extern static cairo_status_t cairo_surface_set_mime_data( cairo_surface_t* surface, sbyte* mimeType, byte* data, uintptr length, Functors.Action<void*> destroy, void* closure );
public extern static cairo_status_t cairo_surface_set_user_data( cairo_surface_t* surface, cairo_user_data_key_t& key, void* userData, Functors.Action<void*> destroy );
public extern static void cairo_surface_show_page( cairo_surface_t* surface );
public extern static cairo_status_t cairo_surface_status( cairo_surface_t* surface );
public extern static Boolean32 cairo_surface_supports_mime_type( cairo_surface_t* surface, sbyte* mimeType );
public extern static void cairo_surface_unmap_image( cairo_surface_t* surface, cairo_surface_t* image );
public extern static cairo_status_t cairo_surface_write_to_png( cairo_surface_t* surface, CUtf8String filename );
public extern static cairo_status_t cairo_surface_write_to_png_stream( cairo_surface_t* surface, Functors.Func<void*, byte*, uint, cairo_status_t> writeFunc, void* closure );
public extern static void cairo_tag_begin( cairo_t* cr, CUtf8String tagName, sbyte* attributes );
public extern static void cairo_tag_end( cairo_t* cr, CUtf8String tagName );
public extern static cairo_text_cluster_t* cairo_text_cluster_allocate( int numClusters );
public extern static void cairo_text_cluster_free( cairo_text_cluster_t* clusters );
public extern static void cairo_text_extents( cairo_t* cr, CUtf8String utf8, cairo_text_extents_t& extents );
public extern static void cairo_text_path( cairo_t* cr, CUtf8String utf8 );
public extern static cairo_font_face_t* cairo_toy_font_face_create( sbyte* family, cairo_font_slant_t slant, cairo_font_weight_t weight );
public extern static sbyte* cairo_toy_font_face_get_family( cairo_font_face_t* fontFace );
public extern static cairo_font_slant_t cairo_toy_font_face_get_slant( cairo_font_face_t* fontFace );
public extern static cairo_font_weight_t cairo_toy_font_face_get_weight( cairo_font_face_t* fontFace );
public extern static void cairo_transform( cairo_t* cr, cairo_matrix_t& matrix );
public extern static void cairo_translate( cairo_t* cr, double tx, double ty );
public extern static cairo_font_face_t* cairo_user_font_face_create();
public extern static Functors.Func<cairo_scaled_font_t*, cairo_t*, cairo_font_extents_t*, cairo_status_t> cairo_user_font_face_get_init_func( cairo_font_face_t* fontFace );
public extern static Functors.Func<cairo_scaled_font_t*, uintptr, cairo_t*, cairo_text_extents_t*, cairo_status_t> cairo_user_font_face_get_render_glyph_func( cairo_font_face_t* fontFace );
public extern static Functors.Func<cairo_scaled_font_t*, sbyte*, int, cairo_glyph_t**, int*, cairo_text_cluster_t**, int*, cairo_text_cluster_flags_t*, cairo_status_t> cairo_user_font_face_get_text_to_glyphs_func( cairo_font_face_t* fontFace );
public extern static Functors.Func<cairo_scaled_font_t*, uintptr, uintptr*, cairo_status_t> cairo_user_font_face_get_unicode_to_glyph_func( cairo_font_face_t* fontFace );
public extern static void cairo_user_font_face_set_init_func( cairo_font_face_t* fontFace, Functors.Func<cairo_scaled_font_t*, cairo_t*, cairo_font_extents_t*, cairo_status_t> initFunc );
public extern static void cairo_user_font_face_set_render_glyph_func( cairo_font_face_t* fontFace, Functors.Func<cairo_scaled_font_t*, uintptr, cairo_t*, cairo_text_extents_t*, cairo_status_t> renderGlyphFunc );
public extern static void cairo_user_font_face_set_text_to_glyphs_func( cairo_font_face_t* fontFace, Functors.Func<cairo_scaled_font_t*, sbyte*, int, cairo_glyph_t**, int*, cairo_text_cluster_t**, int*, cairo_text_cluster_flags_t*, cairo_status_t> textToGlyphsFunc );
public extern static void cairo_user_font_face_set_unicode_to_glyph_func( cairo_font_face_t* fontFace, Functors.Func<cairo_scaled_font_t*, uintptr, uintptr*, cairo_status_t> unicodeToGlyphFunc );
public extern static void cairo_user_to_device( cairo_t* cr, double& x, double& y );
public extern static void cairo_user_to_device_distance( cairo_t* cr, double& dx, double& dy );
public extern static int cairo_version();
public extern static CUtf8String cairo_version_string();
public extern static void cairo_ps_get_levels( cairo_ps_level_t** levels, int* numLevels );
public extern static sbyte* cairo_ps_level_to_string( cairo_ps_level_t level );
public extern static cairo_surface_t* cairo_ps_surface_create( CUtf8String filename, double widthInPoints, double heightInPoints );
public extern static cairo_surface_t* cairo_ps_surface_create_for_stream( Functors.Func<void*, byte*, uint, cairo_status_t> writeFunc, void* closure, double widthInPoints, double heightInPoints );
public extern static void cairo_ps_surface_dsc_begin_page_setup( cairo_surface_t* surface );
public extern static void cairo_ps_surface_dsc_begin_setup( cairo_surface_t* surface );
public extern static void cairo_ps_surface_dsc_comment( cairo_surface_t* surface, CUtf8String comment );
public extern static Boolean32 cairo_ps_surface_get_eps( cairo_surface_t* surface );
public extern static void cairo_ps_surface_restrict_to_level( cairo_surface_t* surface, cairo_ps_level_t level );
public extern static void cairo_ps_surface_set_eps( cairo_surface_t* surface, Boolean32 eps );
public extern static void cairo_ps_surface_set_size( cairo_surface_t* surface, double widthInPoints, double heightInPoints );
public extern static void cairo_pdf_get_versions( cairo_pdf_version_t** versions, int* numVersions );
public extern static int cairo_pdf_surface_add_outline( cairo_surface_t* surface, int parentId, sbyte* utf8, sbyte* linkAttribs, cairo_pdf_outline_flags_t flags );
public extern static cairo_surface_t* cairo_pdf_surface_create( CUtf8String filename, double widthInPoints, double heightInPoints );
public extern static cairo_surface_t* cairo_pdf_surface_create_for_stream( Functors.Func<void*, byte*, uint, cairo_status_t> writeFunc, void* closure, double widthInPoints, double heightInPoints );
public extern static void cairo_pdf_surface_restrict_to_version( cairo_surface_t* surface, cairo_pdf_version_t version );
public extern static void cairo_pdf_surface_set_metadata( cairo_surface_t* surface, cairo_pdf_metadata_t metadata, sbyte* utf8 );
public extern static void cairo_pdf_surface_set_page_label( cairo_surface_t* surface, sbyte* utf8 );
public extern static void cairo_pdf_surface_set_size( cairo_surface_t* surface, double widthInPoints, double heightInPoints );
public extern static void cairo_pdf_surface_set_thumbnail_size( cairo_surface_t* surface, int width, int height );
public extern static sbyte* cairo_pdf_version_to_string( cairo_pdf_version_t version );
public extern static void cairo_svg_get_versions( cairo_svg_version_t*& versions, int& numVersions );
public extern static cairo_surface_t* cairo_svg_surface_create( CUtf8String filename, double widthInPoints, double heightInPoints );
public extern static cairo_surface_t* cairo_svg_surface_create_for_stream( Functors.Func<void*, byte*, uint, cairo_status_t> writeFunc, void* closure, double widthInPoints, double heightInPoints );
public extern static cairo_svg_unit_t cairo_svg_surface_get_document_unit( cairo_surface_t* surface );
public extern static void cairo_svg_surface_restrict_to_version( cairo_surface_t* surface, cairo_svg_version_t version );
public extern static void cairo_svg_surface_set_document_unit( cairo_surface_t* surface, cairo_svg_unit_t unit );
public extern static CUtf8String cairo_svg_version_to_string( cairo_svg_version_t version );
public extern static void cairo_xlib_device_debug_cap_xrender_version( cairo_device_t* device, int majorVersion, int minorVersion );
public extern static int cairo_xlib_device_debug_get_precision( cairo_device_t* device );
public extern static void cairo_xlib_device_debug_set_precision( cairo_device_t* device, int precision );
public extern static cairo_surface_t* cairo_xlib_surface_create( Display* dpy, Drawable drawable, Visual* visual, int width, int height );
public extern static cairo_surface_t* cairo_xlib_surface_create_for_bitmap( Display* dpy, Pixmap bitmap, Screen* screen, int width, int height );
public extern static int cairo_xlib_surface_get_depth( cairo_surface_t* surface );
public extern static Display* cairo_xlib_surface_get_display( cairo_surface_t* surface );
public extern static Drawable cairo_xlib_surface_get_drawable( cairo_surface_t* surface );
public extern static int cairo_xlib_surface_get_height( cairo_surface_t* surface );
public extern static Screen* cairo_xlib_surface_get_screen( cairo_surface_t* surface );
public extern static Visual* cairo_xlib_surface_get_visual( cairo_surface_t* surface );
public extern static int cairo_xlib_surface_get_width( cairo_surface_t* surface );
public extern static void cairo_xlib_surface_set_drawable( cairo_surface_t* surface, Drawable drawable, int width, int height );
public extern static void cairo_xlib_surface_set_size( cairo_surface_t* surface, int width, int height );
public extern static cairo_surface_t* cairo_xlib_surface_create_with_xrender_format( Display* dpy, Drawable drawable, Screen* screen, XRenderPictFormat* format, int width, int height );
public extern static XRenderPictFormat* cairo_xlib_surface_get_xrender_format( cairo_surface_t* surface );
}
public enum cairo_antialias_t : uint {
CAIRO_ANTIALIAS_DEFAULT = 0,
CAIRO_ANTIALIAS_NONE = 1,
CAIRO_ANTIALIAS_GRAY = 2,
CAIRO_ANTIALIAS_SUBPIXEL = 3,
CAIRO_ANTIALIAS_FAST = 4,
CAIRO_ANTIALIAS_GOOD = 5,
CAIRO_ANTIALIAS_BEST = 6,
}
public enum cairo_content_t : uint {
CAIRO_CONTENT_COLOR = 4096,
CAIRO_CONTENT_ALPHA = 8192,
CAIRO_CONTENT_COLOR_ALPHA = 12288,
}
public enum cairo_device_type_t : int {
CAIRO_DEVICE_TYPE_DRM = 0,
CAIRO_DEVICE_TYPE_GL = 1,
CAIRO_DEVICE_TYPE_SCRIPT = 2,
CAIRO_DEVICE_TYPE_XCB = 3,
CAIRO_DEVICE_TYPE_XLIB = 4,
CAIRO_DEVICE_TYPE_XML = 5,
CAIRO_DEVICE_TYPE_COGL = 6,
CAIRO_DEVICE_TYPE_WIN32 = 7,
CAIRO_DEVICE_TYPE_INVALID = -1,
}
public enum cairo_extend_t : uint {
CAIRO_EXTEND_NONE = 0,
CAIRO_EXTEND_REPEAT = 1,
CAIRO_EXTEND_REFLECT = 2,
CAIRO_EXTEND_PAD = 3,
}
public enum cairo_fill_rule_t : uint {
CAIRO_FILL_RULE_WINDING = 0,
CAIRO_FILL_RULE_EVEN_ODD = 1,
}
public enum cairo_filter_t : uint {
CAIRO_FILTER_FAST = 0,
CAIRO_FILTER_GOOD = 1,
CAIRO_FILTER_BEST = 2,
CAIRO_FILTER_NEAREST = 3,
CAIRO_FILTER_BILINEAR = 4,
CAIRO_FILTER_GAUSSIAN = 5,
}
public enum cairo_font_slant_t : uint {
CAIRO_FONT_SLANT_NORMAL = 0,
CAIRO_FONT_SLANT_ITALIC = 1,
CAIRO_FONT_SLANT_OBLIQUE = 2,
}
public enum cairo_font_type_t : uint {
CAIRO_FONT_TYPE_TOY = 0,
CAIRO_FONT_TYPE_FT = 1,
CAIRO_FONT_TYPE_WIN32 = 2,
CAIRO_FONT_TYPE_QUARTZ = 3,
CAIRO_FONT_TYPE_USER = 4,
}
public enum cairo_font_weight_t : uint {
CAIRO_FONT_WEIGHT_NORMAL = 0,
CAIRO_FONT_WEIGHT_BOLD = 1,
}
public enum cairo_format_t : int {
CAIRO_FORMAT_INVALID = -1,
CAIRO_FORMAT_ARGB32 = 0,
CAIRO_FORMAT_RGB24 = 1,
CAIRO_FORMAT_A8 = 2,
CAIRO_FORMAT_A1 = 3,
CAIRO_FORMAT_RGB16_565 = 4,
CAIRO_FORMAT_RGB30 = 5,
}
public enum cairo_hint_metrics_t : uint {
CAIRO_HINT_METRICS_DEFAULT = 0,
CAIRO_HINT_METRICS_OFF = 1,
CAIRO_HINT_METRICS_ON = 2,
}
public enum cairo_hint_style_t : uint {
CAIRO_HINT_STYLE_DEFAULT = 0,
CAIRO_HINT_STYLE_NONE = 1,
CAIRO_HINT_STYLE_SLIGHT = 2,
CAIRO_HINT_STYLE_MEDIUM = 3,
CAIRO_HINT_STYLE_FULL = 4,
}
public enum cairo_line_cap_t : uint {
CAIRO_LINE_CAP_BUTT = 0,
CAIRO_LINE_CAP_ROUND = 1,
CAIRO_LINE_CAP_SQUARE = 2,
}
public enum cairo_line_join_t : uint {
CAIRO_LINE_JOIN_MITER = 0,
CAIRO_LINE_JOIN_ROUND = 1,
CAIRO_LINE_JOIN_BEVEL = 2,
}
public enum cairo_operator_t : uint {
CAIRO_OPERATOR_CLEAR = 0,
CAIRO_OPERATOR_SOURCE = 1,
CAIRO_OPERATOR_OVER = 2,
CAIRO_OPERATOR_IN = 3,
CAIRO_OPERATOR_OUT = 4,
CAIRO_OPERATOR_ATOP = 5,
CAIRO_OPERATOR_DEST = 6,
CAIRO_OPERATOR_DEST_OVER = 7,
CAIRO_OPERATOR_DEST_IN = 8,
CAIRO_OPERATOR_DEST_OUT = 9,
CAIRO_OPERATOR_DEST_ATOP = 10,
CAIRO_OPERATOR_XOR = 11,
CAIRO_OPERATOR_ADD = 12,
CAIRO_OPERATOR_SATURATE = 13,
CAIRO_OPERATOR_MULTIPLY = 14,
CAIRO_OPERATOR_SCREEN = 15,
CAIRO_OPERATOR_OVERLAY = 16,
CAIRO_OPERATOR_DARKEN = 17,
CAIRO_OPERATOR_LIGHTEN = 18,
CAIRO_OPERATOR_COLOR_DODGE = 19,
CAIRO_OPERATOR_COLOR_BURN = 20,
CAIRO_OPERATOR_HARD_LIGHT = 21,
CAIRO_OPERATOR_SOFT_LIGHT = 22,
CAIRO_OPERATOR_DIFFERENCE = 23,
CAIRO_OPERATOR_EXCLUSION = 24,
CAIRO_OPERATOR_HSL_HUE = 25,
CAIRO_OPERATOR_HSL_SATURATION = 26,
CAIRO_OPERATOR_HSL_COLOR = 27,
CAIRO_OPERATOR_HSL_LUMINOSITY = 28,
}
public enum cairo_path_data_type_t : uint {
CAIRO_PATH_MOVE_TO = 0,
CAIRO_PATH_LINE_TO = 1,
CAIRO_PATH_CURVE_TO = 2,
CAIRO_PATH_CLOSE_PATH = 3,
}
public enum cairo_pattern_type_t : uint {
CAIRO_PATTERN_TYPE_SOLID = 0,
CAIRO_PATTERN_TYPE_SURFACE = 1,
CAIRO_PATTERN_TYPE_LINEAR = 2,
CAIRO_PATTERN_TYPE_RADIAL = 3,
CAIRO_PATTERN_TYPE_MESH = 4,
CAIRO_PATTERN_TYPE_RASTER_SOURCE = 5,
}
public enum cairo_pdf_metadata_t : uint {
CAIRO_PDF_METADATA_TITLE = 0,
CAIRO_PDF_METADATA_AUTHOR = 1,
CAIRO_PDF_METADATA_SUBJECT = 2,
CAIRO_PDF_METADATA_KEYWORDS = 3,
CAIRO_PDF_METADATA_CREATOR = 4,
CAIRO_PDF_METADATA_CREATE_DATE = 5,
CAIRO_PDF_METADATA_MOD_DATE = 6,
}
[Flags]
public enum cairo_pdf_outline_flags_t : uint {
None = 0,
CAIRO_PDF_OUTLINE_FLAG_OPEN = 1,
CAIRO_PDF_OUTLINE_FLAG_BOLD = 2,
CAIRO_PDF_OUTLINE_FLAG_ITALIC = 4,
}
public enum cairo_pdf_version_t : uint {
CAIRO_PDF_VERSION_1_4 = 0,
CAIRO_PDF_VERSION_1_5 = 1,
}
public enum cairo_ps_level_t : uint {
CAIRO_PS_LEVEL_2 = 0,
CAIRO_PS_LEVEL_3 = 1,
}
public enum cairo_region_overlap_t : uint {
CAIRO_REGION_OVERLAP_IN = 0,
CAIRO_REGION_OVERLAP_OUT = 1,
CAIRO_REGION_OVERLAP_PART = 2,
}
public enum cairo_status_t : uint {
CAIRO_STATUS_SUCCESS = 0,
CAIRO_STATUS_NO_MEMORY = 1,
CAIRO_STATUS_INVALID_RESTORE = 2,
CAIRO_STATUS_INVALID_POP_GROUP = 3,
CAIRO_STATUS_NO_CURRENT_POINT = 4,
CAIRO_STATUS_INVALID_MATRIX = 5,
CAIRO_STATUS_INVALID_STATUS = 6,
CAIRO_STATUS_NULL_POINTER = 7,
CAIRO_STATUS_INVALID_STRING = 8,
CAIRO_STATUS_INVALID_PATH_DATA = 9,
CAIRO_STATUS_READ_ERROR = 10,
CAIRO_STATUS_WRITE_ERROR = 11,
CAIRO_STATUS_SURFACE_FINISHED = 12,
CAIRO_STATUS_SURFACE_TYPE_MISMATCH = 13,
CAIRO_STATUS_PATTERN_TYPE_MISMATCH = 14,
CAIRO_STATUS_INVALID_CONTENT = 15,
CAIRO_STATUS_INVALID_FORMAT = 16,
CAIRO_STATUS_INVALID_VISUAL = 17,
CAIRO_STATUS_FILE_NOT_FOUND = 18,
CAIRO_STATUS_INVALID_DASH = 19,
CAIRO_STATUS_INVALID_DSC_COMMENT = 20,
CAIRO_STATUS_INVALID_INDEX = 21,
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE = 22,
CAIRO_STATUS_TEMP_FILE_ERROR = 23,
CAIRO_STATUS_INVALID_STRIDE = 24,
CAIRO_STATUS_FONT_TYPE_MISMATCH = 25,
CAIRO_STATUS_USER_FONT_IMMUTABLE = 26,
CAIRO_STATUS_USER_FONT_ERROR = 27,
CAIRO_STATUS_NEGATIVE_COUNT = 28,
CAIRO_STATUS_INVALID_CLUSTERS = 29,
CAIRO_STATUS_INVALID_SLANT = 30,
CAIRO_STATUS_INVALID_WEIGHT = 31,
CAIRO_STATUS_INVALID_SIZE = 32,
CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED = 33,
CAIRO_STATUS_DEVICE_TYPE_MISMATCH = 34,
CAIRO_STATUS_DEVICE_ERROR = 35,
CAIRO_STATUS_INVALID_MESH_CONSTRUCTION = 36,
CAIRO_STATUS_DEVICE_FINISHED = 37,
CAIRO_STATUS_JBIG2_GLOBAL_MISSING = 38,
CAIRO_STATUS_PNG_ERROR = 39,
CAIRO_STATUS_FREETYPE_ERROR = 40,
CAIRO_STATUS_WIN32_GDI_ERROR = 41,
CAIRO_STATUS_TAG_ERROR = 42,
CAIRO_STATUS_LAST_STATUS = 43,
}
public enum cairo_subpixel_order_t : uint {
CAIRO_SUBPIXEL_ORDER_DEFAULT = 0,
CAIRO_SUBPIXEL_ORDER_RGB = 1,
CAIRO_SUBPIXEL_ORDER_BGR = 2,
CAIRO_SUBPIXEL_ORDER_VRGB = 3,
CAIRO_SUBPIXEL_ORDER_VBGR = 4,
}
public enum cairo_surface_observer_mode_t : uint {
CAIRO_SURFACE_OBSERVER_NORMAL = 0,
CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS = 1,
}
public enum cairo_surface_type_t : uint {
CAIRO_SURFACE_TYPE_IMAGE = 0,
CAIRO_SURFACE_TYPE_PDF = 1,
CAIRO_SURFACE_TYPE_PS = 2,
CAIRO_SURFACE_TYPE_XLIB = 3,
CAIRO_SURFACE_TYPE_XCB = 4,
CAIRO_SURFACE_TYPE_GLITZ = 5,
CAIRO_SURFACE_TYPE_QUARTZ = 6,
CAIRO_SURFACE_TYPE_WIN32 = 7,
CAIRO_SURFACE_TYPE_BEOS = 8,
CAIRO_SURFACE_TYPE_DIRECTFB = 9,
CAIRO_SURFACE_TYPE_SVG = 10,
CAIRO_SURFACE_TYPE_OS2 = 11,
CAIRO_SURFACE_TYPE_WIN32_PRINTING = 12,
CAIRO_SURFACE_TYPE_QUARTZ_IMAGE = 13,
CAIRO_SURFACE_TYPE_SCRIPT = 14,
CAIRO_SURFACE_TYPE_QT = 15,
CAIRO_SURFACE_TYPE_RECORDING = 16,
CAIRO_SURFACE_TYPE_VG = 17,
CAIRO_SURFACE_TYPE_GL = 18,
CAIRO_SURFACE_TYPE_DRM = 19,
CAIRO_SURFACE_TYPE_TEE = 20,
CAIRO_SURFACE_TYPE_XML = 21,
CAIRO_SURFACE_TYPE_SKIA = 22,
CAIRO_SURFACE_TYPE_SUBSURFACE = 23,
CAIRO_SURFACE_TYPE_COGL = 24,
}
public enum cairo_svg_unit_t : uint {
CAIRO_SVG_UNIT_USER = 0,
CAIRO_SVG_UNIT_EM = 1,
CAIRO_SVG_UNIT_EX = 2,
CAIRO_SVG_UNIT_PX = 3,
CAIRO_SVG_UNIT_IN = 4,
CAIRO_SVG_UNIT_CM = 5,
CAIRO_SVG_UNIT_MM = 6,
CAIRO_SVG_UNIT_PT = 7,
CAIRO_SVG_UNIT_PC = 8,
CAIRO_SVG_UNIT_PERCENT = 9,
}
public enum cairo_svg_version_t : uint {
CAIRO_SVG_VERSION_1_1 = 0,
CAIRO_SVG_VERSION_1_2 = 1,
}
[Flags]
public enum cairo_text_cluster_flags_t : uint {
None = 0,
CAIRO_TEXT_CLUSTER_FLAG_BACKWARD = 1,
}
public partial struct cairo_device_t {
}
[ExplicitSize( Size = 40 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_font_extents_t {
[ExplicitOffset( Offset = 0 )]
public double ascent;
[ExplicitOffset( Offset = 8 )]
public double descent;
[ExplicitOffset( Offset = 16 )]
public double height;
[ExplicitOffset( Offset = 24 )]
public double max_x_advance;
[ExplicitOffset( Offset = 32 )]
public double max_y_advance;
}
public partial struct cairo_font_face_t {
}
public partial struct cairo_font_options_t {
}
[ExplicitSize( Size = 24 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_glyph_t {
[ExplicitOffset( Offset = 0 )]
public uintptr index;
[ExplicitOffset( Offset = 8 )]
public double x;
[ExplicitOffset( Offset = 16 )]
public double y;
}
[ExplicitSize( Size = 48 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_matrix_t {
[ExplicitOffset( Offset = 0 )]
public double xx;
[ExplicitOffset( Offset = 8 )]
public double yx;
[ExplicitOffset( Offset = 16 )]
public double xy;
[ExplicitOffset( Offset = 24 )]
public double yy;
[ExplicitOffset( Offset = 32 )]
public double x0;
[ExplicitOffset( Offset = 40 )]
public double y0;
}
[ExplicitSize( Size = 24 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_path {
[ExplicitOffset( Offset = 0 )]
public cairo_status_t status;
[ExplicitOffset( Offset = 8 )]
public cairo_path_data_t* data;
[ExplicitOffset( Offset = 16 )]
public int num_data;
}
[ExplicitSize( Size = 16 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_path_data_t {
[Overlapped( Offset = 0 )]
public UnnamedStruct_2245AC81 header;
[Overlapped( Offset = 0 )]
public UnnamedStruct_2245AC05 point;
}
public partial struct cairo_pattern_t {
}
[ExplicitSize( Size = 16 )]
[Alignment( Boundary = 4 )]
public partial struct cairo_rectangle_int_t {
[ExplicitOffset( Offset = 0 )]
public int x;
[ExplicitOffset( Offset = 4 )]
public int y;
[ExplicitOffset( Offset = 8 )]
public int width;
[ExplicitOffset( Offset = 12 )]
public int height;
}
[ExplicitSize( Size = 24 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_rectangle_list_t {
[ExplicitOffset( Offset = 0 )]
public cairo_status_t status;
[ExplicitOffset( Offset = 8 )]
public cairo_rectangle_t* rectangles;
[ExplicitOffset( Offset = 16 )]
public int num_rectangles;
}
[ExplicitSize( Size = 32 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_rectangle_t {
[ExplicitOffset( Offset = 0 )]
public double x;
[ExplicitOffset( Offset = 8 )]
public double y;
[ExplicitOffset( Offset = 16 )]
public double width;
[ExplicitOffset( Offset = 24 )]
public double height;
}
public partial struct cairo_region_t {
}
public partial struct cairo_scaled_font_t {
}
public partial struct cairo_surface_t {
}
public partial struct cairo_t {
}
[ExplicitSize( Size = 8 )]
[Alignment( Boundary = 4 )]
public partial struct cairo_text_cluster_t {
[ExplicitOffset( Offset = 0 )]
public int num_bytes;
[ExplicitOffset( Offset = 4 )]
public int num_glyphs;
}
[ExplicitSize( Size = 48 )]
[Alignment( Boundary = 8 )]
public partial struct cairo_text_extents_t {
[ExplicitOffset( Offset = 0 )]
public double x_bearing;
[ExplicitOffset( Offset = 8 )]
public double y_bearing;
[ExplicitOffset( Offset = 16 )]
public double width;
[ExplicitOffset( Offset = 24 )]
public double height;
[ExplicitOffset( Offset = 32 )]
public double x_advance;
[ExplicitOffset( Offset = 40 )]
public double y_advance;
}
[ExplicitSize( Size = 4 )]
[Alignment( Boundary = 4 )]
public partial struct cairo_user_data_key_t {
[ExplicitOffset( Offset = 0 )]
public int unused;
}
[ExplicitSize( Size = 16 )]
[Alignment( Boundary = 8 )]
public partial struct UnnamedStruct_2245AC05 {
[ExplicitOffset( Offset = 0 )]
public double x;
[ExplicitOffset( Offset = 8 )]
public double y;
}
[ExplicitSize( Size = 8 )]
[Alignment( Boundary = 4 )]
public partial struct UnnamedStruct_2245AC81 {
[ExplicitOffset( Offset = 0 )]
public cairo_path_data_type_t type;
[ExplicitOffset( Offset = 4 )]
public int length;
}
}